#ifndef _MB_STORE_H_
#define _MB_STORE_H_

#include "mb_type.h"

/* 固件信息存储相关数据 */
typedef struct STORE_INFO_VAR_STR
{
    mb_4bufu     size;
    mb_addr_attr addr_attr;
    uint32_t     cur_addr_offset;  /* 实时地址偏移值 */
    MB_STATUS    is_addr_offset_reset;
} store_info_var, *store_info_var_t;

/* 固件存储相关数据 */
typedef struct STORE_FW_VAR_STR
{
    mb_addr_attr addr_attr;
    uint32_t     cur_addr_offset;  /* 实时地址偏移值 */
    MB_STATUS    is_addr_offset_reset;
} store_fw_var, *store_fw_var_t;

/* STORE 私有数据 */
typedef struct STORE_PRVT_STR
{
    sto_op *       carrier;      /* 数据通道操作 */
    store_info_var info_var;     /* 固件信息存储相关变量 */
    store_fw_var   fw_var;       /* 固件存储相关变量 */
} store_prvt, *store_prvt_t;

/* 注册 store 协议操作 */
store_op_t mb_store_op_register(void);

#endif
